The present invention relates to a remote copying system and a remote copying method that duplicate data stored in a storage system in another storage system.
In recent years, in a company or an organization such as a financial institution that possesses a great amount of valuable data, various measures are taken to protect the data from the situation, such as an earthquake, a fire, a large-scale power failure, a terrorist attack, or a viral inflection. As one of the measures, a technology that duplicates the data in a storage system in a remote place, what is called, remote copying (hereinafter referred to as also “RC”) can be found.
In RC, a pair is constructed in a unit of volume between respective storage systems on the actual place and in a remote place as a rule, and data is transferred and copied between the pairs. The volume is a logical storage area that stores the data. As hardware, usually, the volume is a magnetic disk, such as a hard disk, but the volume may also be an optical disk other than the magnetic disk.
The relationship between hardware and a volume may also be any case when the hardware is an HDD (hard disk drive). For example, the case applies even if a single volume corresponds to a single HDD, multiple volumes correspond to the single HDD, the single volume corresponds to multiple HDDs, or the multiple volumes correspond to the multiple HDDs.
An example of a data sending procedure by means of RC is described. The case in which a primary site that is the sending side includes a primary host and a primary storage system, and a secondary site that is the receiving side includes a secondary storage system is cited as the example.
First, a write request for data is issued from a primary host to a primary storage system, and then the primary storage system sends the data to a secondary storage system. Further, in this case, for example, the primary host is not concerned directly in data sending. In some cases, the primary storage system that receives the write request may control the data sending.
And, a data sending method by means of RC can be divided roughly into synchronous type RC and asynchronous type RC. In the synchronous type RC, a write request for data is issued from a primary host to a primary storage system, and then, the primary storage system sends the data to a secondary storage system. Subsequently, the secondary storage system sends a receiving completion signal to the primary storage system. The primary storage system receives the receiving completion signal, and sends a write completion signal to the primary host. When the primary host receives a write completion report, the primary host sends next data. Accordingly, with regard to the data, the write request order from the primary host to the primary storage system matches the receiving order of the secondary storage system. However, only after the data is sent to the secondary storage system can the primary host issue the write request of the next data to the primary storage system. Accordingly, in particular, when the data is sent between long distances, the data sending requires much time, and the synchronous type RC is not suitable for the data sending.
On the other hand, in the asynchronous type RC, when a write request for data is issued from a primary host to a primary storage system, the primary storage system returns a write completion signal to the primary host, and accumulates data temporarily. Subsequently, in predetermined timing, the primary storage system sends the data to the secondary storage system in the write request order from the primary host as a rule. Usually, however, multiple communication lines are provided in parallel. The order in which the secondary storage receives the data does not always match the write request order of the primary host according to the communication conditions of each communication line. However, if a sequence number (serial number) is assigned to the data, the data can be rearranged in the original order on the secondary storage system side.
Moreover, JP Patent No. 3414218 (Paragraphs 0013 to 0015, FIG. 1)(Reference 1) proposes a technology. The technology sends data from a primary controller to a secondary controller in accordance with a write request from a host by means of asynchronous type RC. The technology allows the secondary controller to reflect RC data in a secondary controller in the write request order from the host by assigning a time to the data and sending the data.
For example, in the case of RC to which a sequence number is assigned, data that was uniform from a low sequence number is formally reflected (hereinafter referred to as also “formalization”) in a storage on the data sending side. Consequently, the data receiving order on the receiving side can match the data sending order on the sending side.
However, as the number of storage hardware products is growing, the probability of a fault of the hardware product increases. Accordingly, a series of sequence numbers is assigned to many volume pairs, and RC is performed. In that case, data is not formalized when even one volume becomes faulty. Consequently, the number of volume pairs to be grouped should not be too numerous.
Moreover, that the data of a secondary storage system is the data of time at which a primary storage system is provided is called “consistency can be found”. For example, when the data of a database is stored in a volume, there is the possibility of the volume that stores log data and the volume that stores table data being split into a separate volume. When the data of multiple volumes is the data of a different time in the primary storage system respectively, the database cannot be activated normally in some cases even when the data of the secondary storage system is used.
For instance, a bank account is described as an example. First, 1,000 yen is assumed to have been deposited in an account A, and 2,000 yen is assumed to have been deposited in an account B. In Operation 1, 100 yen is transferred from the account A to the account B, which is regarded as log data. In Operation 2, the account A is rewritten into 900 yen, which is regarded as table data 1. In Operation 3, the account B is rewritten into 1,100 yen, which is regarded as table data 2. Each data item is sent from a primary storage system to a secondary storage system. In this case, when the data is sent in the order of the log data, table data 1, and table data 2, consistency is guaranteed even if communication is interrupted in any point of time.
However, a secondary storage system receives the data in the order of the table data 1, log data, and table data 2, consistency is not always guaranteed. That is, for example, if communication is interrupted when the secondary storage system receives only the table data 1,900 yen is deposited in the account A, 2,000 yen is deposited in the account B, and there is no log data. In other words, the situation will occur where no consistency can be found, inconsistency can be found in data contents, and recovery is disabled. Accordingly, it is important to uniform multiple volumes and guarantee the consistency. The unity of these volumes is called a consistency group.
Owing to a user's conditions, the composition of a consistency group will have to be changed in some cases. In the past, once a volume pair that migrates the consistency group has been released, the consistency group is migrated. Subsequently, the volume pair was reassembled.